package com.angcyo.selenium.bean

/**
 * 有了目标元素之后, 需要进行的处理操作
 * Email:angcyo@126.com
 * @author angcyo
 * @date 2020/12/30
 */
data class HandleBean(

    /**
     * 满足其中一个条件,[HandleBean]才会被执行*/
    var conditionList: List<ConditionBean>? = null,

    /**重新选择新的元素, 否则直接使用[com.angcyo.selenium.bean.CheckBean.event]获取到的元素*/
    var selectList: List<SelectorBean>? = null,

    /**过滤目标元素, 只处理之后的元素*/
    var filter: FilterBean? = null,

    /**不管执行有没有成功, 都返回[false]
     * 优先处理此属性*/
    var ignore: Boolean = false,

    /**不管执行是否成功, 都跳过之后的[HandleBean]处理*/
    var jump: Boolean = false,

    /**当执行成功后, 跳过之后的[HandleBean]处理*/
    var jumpOnSuccess: Boolean = false,

    /**
     * 当有元素选择时需要执行的具体操作
     * [com.angcyo.selenium.auto.action.Action]*/
    var actionList: List<String>? = null,

    /**
     * 当没有元素选择时需要执行的具体操作, 如果未指定则继续使用[actionList]
     * [com.angcyo.selenium.auto.action.Action]*/
    var noActionList: List<String>? = null,

    /**
     * 从[com.angcyo.selenium.bean.TaskBean.textMap]取出文本, 通过空格分隔成列表
     * 依次循环处理分隔后的文本列表放置到指定的[key]中(默认key是[eachText]), 执行当前的[HandleBean]
     * [index] 取列表中的哪些项, 不指定表示所有. 如果指定的数字大于列表大小, 则直接执行成功.
     *  "$[termsWord] key:eachText index:1~-1"
     * */
    var eachText: String? = null
)
